#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char alfabeto[3] = {'a','b','c'};
int matriz[3][8] = {{1,1,3,1,5,1,7,1},{0,2,0,4,0,4,0,2},{0,0,0,0,0,6,0,0}};

int indice(char caracter) { 
	int i;
	for(i = 0; i < 3;i++) {
		if(alfabeto[i] == caracter) { 
			 return i;
		}
	}
	return -1;

}

//funcao que recebe o caracter lido e o estado atual e retorna o proximo estado
int transicao(int caracter, int estado) { 

	if(caracter == -1) return 0;

	return matriz[caracter][estado];

}

int main(int argc, char *argv[]){

	char *texto = argv[1];

	int estado = 0;

	int i = 0;


	while(texto[i] != '\0') {


		estado = transicao(indice(texto[i]),estado); 
		if (estado == 7) { 
			printf("Achou na posiçao:%d",i);
		}

		i++;


	}

	return 0;

}